# -*- coding: utf-8 -*-
from sqlobject import *
from otica.db import connect
from otica.models.usuarios import Perfil, Permissao, Usuario
from otica.models.clientes import Cliente
import os


connection = connect.get_conection()
sqlhub.processConnection = connection

def createAdmin():
    admin = Usuario()
    admin.login = u"admin"
    admin.senha=u"admin"
    
    retricao = Permissao()
    retricao.descricao = "Restrição de Acesso" 

    excluir = Permissao()
    excluir.descricao = "Excluir Registros"
    
    
    perfilAdministrador = Perfil()
    perfilAdministrador.descricao = "Administrador"
    
    perfilUsuario = Perfil()
    perfilUsuario.descricao = "Usuário"
    
    perfilAdministrador.addPermissao(retricao)
    
    #perfis Administrador e Usuario tem acesso ao cadastro de usuarios 
    perfilAdministrador.addPermissao(excluir)
    perfilUsuario.addPermissao(excluir)
    
    
    #admin no perfil Administrador e com permissao cadastro de usuários
    admin.perfil = perfilAdministrador
    admin.addPermissao(retricao)
    admin.addPermissao(excluir)

def createTables(ifNotExists=True):
    Usuario.createTable(ifNotExists=ifNotExists)
    Permissao.createTable(ifNotExists=ifNotExists)
    Perfil.createTable(ifNotExists=ifNotExists)
    Cliente.createTable(ifNotExists=ifNotExists,createIndexes=True)
    #print dir(Cliente.sqlmeta.columns['codigo'])
    #Cliente.sqlmeta.addColumn(IntCol('codigo'), changeSchema=True)
    #Cliente.createIndexes(ifNotExists=False)
    
    
    print 'Tabelas Criadas'

createTables()
createAdmin()
